<?php

/**
 * This is the model class for table "{{customer}}".
 *
 * The followings are the available columns in table '{{customer}}':
 * @property integer $id
 * @property string $fname
 * @property string $lname
 * @property string $mi
 * @property string $contact_no
 * @property string $address
 * @property string $create_at
 *
 * The followings are the available model relations:
 * @property Reservation[] $reservation
 */
class Customer extends CActiveRecord
{
        /**
         * Returns the static model of the specified AR class.
         * @param string $className active record class name.
         * @return Customer the static model class
         */
        public static function model($className=__CLASS__)
        {
                return parent::model($className);
        }

        /**
         * @return string the associated database table name
         */
        public function tableName()
        {
                return '{{customer}}';
        }

        /**
         * @return array validation rules for model attributes.
         */
        public function rules()
        {
                // NOTE: you should only define rules for those attributes that
                // will receive user inputs.
                return array(
                        array('fname, lname, mi, contact_no, address', 'required'),
                        array('fname, lname, contact_no, address', 'length', 'max'=>45),
                        array('mi', 'length', 'max'=>3),
                        array('create_at', 'safe'),
                        // The following rule is used by search().
                        // Please remove those attributes that should not be searched.
                        array('id, fname, lname, mi, contact_no, address, create_at', 'safe', 'on'=>'search'),
                );
        }

        /**
         * @return array relational rules.
         */
        public function relations()
        {
                // NOTE: you may need to adjust the relation name and the related
                // class name for the relations automatically generated below.
                return array(
                         'customer' => array(self::BELONGS_TO, 'Customer', 'id'),
                         'service' => array(self::BELONGS_TO, 'Service', 'id'),
						 'reservation' => array(self::BELONGS_TO, 'Reservation', 'id'),

                         
                );
        }

        /**
         * @return array customized attribute labels (name=>label)
         */
        public function attributeLabels()
        {
                return array(
                        'fname' => 'First Name',
                        'lname' => 'Last Name',
                        'mi' => 'Middle Initial',
                        'contact_no' => 'Contact No',
                        'address' => 'Address',
                        'create_at' => 'Create At',
                );
        }

        /**
         * Retrieves a list of models based on the current search/filter conditions.
         * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
         */
        public function search()
        {
                // Warning: Please modify the following code to remove attributes that
                // should not be searched.

                $criteria=new CDbCriteria;

                $criteria->compare('id',$this->id);
                $criteria->compare('fname',$this->fname,true);
                $criteria->compare('lname',$this->lname,true);
                $criteria->compare('mi',$this->mi,true);
                $criteria->compare('contact_no',$this->contact_no,true);
                $criteria->compare('address',$this->address,true);
                $criteria->compare('create_at',$this->create_at,true);

                return new CActiveDataProvider($this, array(
                        'criteria'=>$criteria,
                ));
        }
             
         public function getFullName(){
                return $this->fname.' '.$this->mi.'. '.$this->lname; 
        }
                
                  public function getAddress(){
                return $this->address; 
        }
                
                 public function getContact(){
                return $this->contact_no; 
                                
                }
}